// Package day_12_dp 4-746
// @Title day_12_dp
// @Description  最小花费爬楼梯
// @Author  == 琳琳也叫王木木 ==  2021/9/6 15:10
// @Create  2021/9/6 15:10
package day_12_dp

import "fmt"

func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}

func MinCostClimbingStairs(cost []int) int {
	if cost == nil {
		return 0
	}
	// 楼梯只有2层，不需要消耗体力
	if len(cost) < 2 {
		return 0
	}
	//var ans int
	dpArr := make([]int, len(cost))
	for i := 0; i < len(cost); i++ {
		if i < 2 {
			dpArr[i] = cost[i]
			continue
		}
		// 1. 踩当前层  上一层或者上上层的最小值+当前体力值
		hitCur := cost[i] + min(dpArr[i-2], dpArr[i-1])
		// 2.不踩当前层
		noHit := dpArr[i-1]
		dpArr[i] = min(hitCur, noHit)
	}
	fmt.Println(dpArr)
	return dpArr[len(cost)-1]
}
